export interface UserProfile {
  id: number;
  username: string;
  real_name: string | null;
  avatar: string;
  blog: string | null;
  mood: string | null;
  github: string | null;
  school: string | null;
  major: string | null;
  language: string | null;
  submission_number: number;
  accepted_number: number;
  total_score?: number;
  acm_problems_status?: Record<string, any>;
  oi_problems_status?: Record<string, any>;
}

export type AdminType = 'Regular User' | 'Admin' | 'Super Admin';
export type ProblemPermission = 'None' | 'Own' | 'All';

export interface User {
  id: number;
  username: string;
  email: string;
  admin_type: AdminType;
  problem_permission: ProblemPermission;
  last_login: string | null;
  is_disabled: boolean;
  userprofile: UserProfile;
}



export interface CreateUserRequest {
  username: string;
  email: string;
  password: string;
  password_confirm: string;
  admin_type: AdminType;
  problem_permission: ProblemPermission;
  is_disabled: boolean;
}

export interface UpdateUserRequest {
  admin_type?: AdminType;
  problem_permission?: ProblemPermission;
  is_disabled?: boolean;
}

export interface UpdateUserProfileRequest {
  real_name?: string;
  blog?: string;
  mood?: string;
  github?: string;
  school?: string;
  major?: string;
  language?: string;
} 